//
//  XLGDataLinkWorkShop.h
//  etionCBLogic
//
//  Created by wjxfhxy on 14-10-13.
//  Copyright (c) 2014年 GuangZhouXuanWu. All rights reserved.
//

#import <Foundation/Foundation.h>

/**
 *  消息链，把从服务器获取的数据，串联成链，解决加载更多时本地判断的问题
 */

@protocol XLGDataLinkWorkShopPorpertyDelegate <NSObject>

@property(nonatomic,readonly,retain) NSString* parentID;

@property(nonatomic,retain) NSString* followID;

@end

@interface XLGDataLinkWorkShop : NSObject

/**
 *  需要链接的消息，数据必须已经排序，[0].folleID->[1].parentID;[1].folleID->[2].parentID;[2].folleID->[3].parentID;[3].folleID->nil
 *
 *  @param datas 需要排序的消息
 */
+(void)linkDatas:(NSArray*)datas;

/**
 *  把两个消息串联在一起
 *
 *  @param data             第一个消息
 *  @param followData    第二个消息
 */
+(void)data:(id<XLGDataLinkWorkShopPorpertyDelegate>)data linkFollowData:(id<XLGDataLinkWorkShopPorpertyDelegate>)followData;

/**
 *  检查给定的消息，是否已经串联在一起
 *
 *  @param dataLink 要检查的消息
 *
 *  @return YES，串联在一起
 */
+(BOOL)checkDataLink:(NSArray*)dataLink;

@end


@interface XLGDataLinkWorkShop (SQLiteHelper)

/**
 *  更新数据库表中消息链接
 *
 *  @param datas            数据
 *  @param lastParentID     数据库表中某一条消息的followID指向data[0].parentID，若为空，不执行次操作
 *  @param handler          数据库操作对象
 *  @param tableName        要更新的表
 *  @param setKey           followID对应的数据库字段
 *  @param whereKey         parentID对应的数据库字段
 */
+(NSInteger)saveDataLinks:(NSArray*)dataLink withLastParentID:(NSString*)lastParentID andSQLiteHelper:(XMSSQLiteHelper *)handler updateTable:(NSString*)tableName setKey:(NSString*)setKey whereKey:(NSString*)whereKey;

@end